home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / wb / czesc_4 / viruscheck / checkarc1_10.lha / CheckArc.docFr next >
Text File  |  1996-10-24  |  12KB  |  219 lines

  1.                                 CHECKARC 1.1 24/10/96
  2.  
  3.  
  4. Introduction
  5.  
  6. Ce programme est mailware (afin de voir si des gens, autre que moi et mes potes, s'en servent :-(.
  7. Il peut être aussi suggestionware, à vous de voir...
  8. Ce petit programme est censé examiner RÉCURSIVEMENT vos archives afin de voir si elles
  9. ne contiennent pas une de ces vilaines bêtes communément appelées VIRUS (Pouarc ...).
  10. C'est grace au port AREXX de VirusZ que le scan virus va être possible. Ce script remplace, en mieux
  11. à mon goût, la fonction "Extract Archives" de VirusZ.
  12. Pourquoi j'ai fait ce programme ?
  13.     - VirusZ ne scanne pas les .DMS (sauf erreur de ma part)
  14.     - Mon script détecte les erreurs physiques dans les .DMS (Utilisateur d'une version enregistré
  15.       de Dms uniquement)
  16.     - Mon rapport en fin de scan est à mon goût plus explicite pour tout le monde et plus complet
  17.     - J'avais envie de programmer en AREXX 
  18.  
  19.  
  20. De quoi ce script a-t-il besoin ??
  21.  
  22. * La RexxReqTools.library (util/rexx/RexxReqTools.lha)
  23. * La RexxSupport.library (elle doit être sur une de vos disquettes systèmes)
  24. * Lha (util/arc/LhA_e138.run)
  25. * Lzx (util/arc/lzx121.lha)
  26. * Dms (util/arc/dms111.run)
  27. * VirusZ 1.3x (util/virus/VirusZ_II135.lha)
  28. * Unzip (util/arc/Unzip512x.lha)
  29. * Unrar (util/arc/Unrar202.lha)
  30. Les versions données ci-dessus sont des versions publiques puisqu'elles sont disponibles sur tout
  31. miroir Aminet digne de ce nom. Tout utilisateur, même les débutants d'Aminet, pourront ainsi
  32. facilement récupérer tout ce qui est nécessaire au bon fonctionnement du script.
  33.  
  34.  
  35. Comment qu'on s'en sert ??
  36.  
  37. La ligne de commande est la suivante : Rx Chemin/CheckArc.vzrx Argument.
  38. L'Argument peut être soit un chemin soit une archive. L'Argument n'est pas obligatoire :
  39. si vous lancez l'exécution Rx Chemin/CheckArc.vzrx vous aurez
  40.     1) une boite de requête qui vous demandera de préciser ce que vous allez sélectionner
  41.        (répertoire ou archive)
  42.     2) une requête de fichier (de type Reqtools) qui s'ouvrira dans le répertoire courant dans
  43.        laquelle vous choisirez ce que vous avez précisé au 1). Si vous n'y sélectionnez rien, le
  44.        script fera récursivement la liste des archives (Liste2 = 'RAM:CheckArc.ListeArchives2')
  45.        contenues dans le chemin courant pour les scanner ensuite.
  46. Les archives sont reconnues grace à leur suffixes (.lha, .lzh,...). Si l'Argument que vous avez
  47. transmis ne plait pas à CheckArc.vzrx, il saura vous le faire comprendre :-)
  48. ATTENTION : Quand vous donnerez un chemin au script, il ne listera que des archives (ET PAS LES
  49.             AUTRES FICHIERS) contenues dans ce chemin. Pour scanner les autres fichiers, utilisez
  50.             VirusZ sans l'option "Extract Archives".Bien entendu, lors d'un scan d'archives, il
  51.             s'occupe de tous les types de fichiers qu'elles contiennent (c'est la moindre des choses,
  52.             non ?).
  53. *** AVERTISSEMENT IMPORTANT ***
  54.     Lors du scan, vous risquez de vous apercevoir que des commandes échouent.
  55.     Exemple :
  56.         C:List erreur code 20
  57.     Pas d'affolement, c'est parfaitement contrôlé par le script. Je sais que cela ne fait pas propre,
  58.     mais je ne sais pas comment empêcher AREXX de retourner ces messages d'erreur !!! (voir plus bas
  59.     la section "To do")
  60.  
  61.  
  62. Comment on règle les paramètres ??
  63.  
  64. Il faut éditer le script avec l'editeur de votre choix (ceci n'est pas important).
  65. Voici les champs que vous avez à éventuellemnt modifier :
  66.  
  67. /* Programmes externes */
  68.     Prog_VirusZ = 'UTILITAIRES:SHAREWARE/VIRUSZ/VirusZ'
  69.     Prog_Lha =    'C:Lha'
  70.     Prog_Lzx =    'C:Lzx'
  71.     Prog_Dms =    'C:Dms'
  72.     Prog_Zip =    'C:Unzip'
  73.     Prog_Rar =    'C:Unrar'
  74.  
  75. /* Fichiers indispensables à CheckArc.vzrx */
  76.     ListeProbleme = 'RAM:CheckArc.BadArchives'
  77.     Liste1 =        'RAM:CheckArc.ListeArchives1'
  78.     Liste2 =        'RAM:CheckArc.ListeArchives2'
  79.     SortieDMS =     'RAM:CheckArc.SortieDMS'
  80.  
  81. /* Initialisations de variables */
  82.     TempPath =     'T:CheckArcTMP' /* CE CHEMIN SERA EFFACE RECURSIVEMENT A LA FIN DU SCRIPT */
  83.     TempPath2 =    'blabla'
  84.     TempPathDMS =  'RAD1:'
  85.     UseQuitFlag =  'no'
  86.     NomParDefaut = 'ListeProblèmes'
  87.     Symbole =      '›32m->›31m'  <- On peut donner des codes ASCII pour faire de zolies choses :-)
  88.  
  89. * En ce qui concerne les programmes externes, tout le monde a compris qu'il s'agit de dire au script
  90.   où il doit aller les chercher (Chemin d'accès + Nom).
  91. * CheckArc.vzrx va créer au plus 4 fichiers. Le premier, on aimerait qu'il ne soit jamais créé. En
  92.   effet c'est la liste de toutes les archives qui contiennent au moins un des 6 problèmes que peut
  93.   détecter le script. Le fichier Liste2 est la liste des archives contenues dans l'éventuel chemin
  94.   que vous aurez transmis en Argument (Si vous transmettez une archive en Argument, Liste2 ne sera
  95.   pas créée). Le fichier SortieDMS récupère tout le barratin que vous fait Dms lorsqu'il
  96.   désarchive. Ceci sera indispensable pour voir si une archive a des erreurs physiques (Pour les
  97.   possesseur d'une version enregistrée de Dms uniquement).
  98.   REMARQUE : Il est conseillé de mettre le nom du script dans les noms fichiers temporaires au lieu
  99.              d'utiliser les éternels RAM:titi, RAM:toto,...En effet, si vous utilisez RAM:toto dans
  100.              tous vos scripts et que vous en lanciez au moins 2 en multitâche, il risque d'y avoir
  101.              des conflits lors des accès aux fichiers temporaires à cause de noms identiques !!!
  102. * Les variables :
  103.     - TempPath est le répertoire temporaire dans lequel le désarchivage des .LHA, .LZH, .LZX, .RUN,
  104.       .ZIP et .RAR s'effectura.
  105.       ATTENTION1 : L'arborescence sauf le dernier tiroir DOIT exister : le dernier répertoire, s'il
  106.                    est présent sera utilisé, s'il est absent il sera créé.
  107.         Exemple : Si vous voulez TempPath = 'UneArborescenceQuelconque/MonDernierTiroir', il faudra
  108.                   que l'intégralité de "UneArborescenceQuelconque" existe (si au moins un des tiroirs
  109.                   n'existe pas, c'est foutu :-(.
  110.       ATTENTION2 : "MonDernierTiroir" sera effacé récursivement à la fin du script ("MonDernierTiroir"
  111.                    inclu).
  112.       REMARQUE : Désolé pour ces contraintes, mais la commande MakeDir ne crée pas d'arborescence :-(
  113.                  Une boucle paliant à ce problème serait facile à faire mais j'en ai pas vu la
  114.                  nécessité.
  115.     - TempPath2 est la variable qui contrôle la fin de la récursivité. Sa valeur
  116.       d'initialisation est sans importance.
  117.     - TempPathDMS est le chemin dans lequel le désarchivage des .DMS s'effectura.
  118.     - UseQuitFlag indiquera à VirusZ de s'éteindre s'il est mis à yes. Plus clairement :
  119.       vous n'avez peut être pas envie d'avoir VirusZ activé en permanence, donc mettre yes comme
  120.       valeur à UseQuitFlag aura pour conséquence de quitter VirusZ à la fin du script.
  121.     - NomParDefaut est le nom par défaut sous lequel CheckArc.vzrx sauvera le rapport en fin
  122.       du script : une requête vous demandera si oui ou non vous voulez le sauver. 
  123.     - Symbole représente le symbole que vous préférez pour avoir un contrôle visuel de la 
  124.       récursivité.
  125. ATTENTION : Ne modifier rien d'autre au script, sauf si vous savez ce que vous faites.
  126.  
  127.  
  128. Qu'est ce qui m'veut ce #!!@@ de rapport !!!
  129.       
  130. Bon ça y est, vous avez tout compris et vous allez lancer votre première exécution. Voilà les
  131. différentes erreurs qui peuvent arriver.
  132. * ERREUR !!! au cours de l'extraction
  133.     Ceci peut vouloir dire que : - L'archive est corrompue. Dans ce cas votre archive est bonne
  134.                                    pour la poubelle :-(
  135.                                  - Le disque contenant le chemin de désarchivage est plein.
  136.                                    Indiquez un autre disque à CheckArc.vzrx en changeant la valeur
  137.                                    de TempPath et recommencez le scan.
  138.                                  - ...
  139. * ERREUR !!! durant la copie des fichiers de RAD1:
  140.     Ceci peut vouloir dire que : - Sur votre disque RAD1, des fichiers n'ont pu être lus. Soit des
  141.                                    fichiers sont protégés contre toutes tentatives de lecture, soit
  142.                                    ils sont endommagés.
  143.                                  - ...
  144. * VIRUS localisé dans
  145.     Je crois que tout le monde à compris :-)
  146. * Disque non DOS dans le périphérique RAD1:
  147.     Ceci n'est pas une erreur grave. Elle est juste là à titre indicatif (Coucou André :-).
  148. * ERREUR !!! durant l'examen récursif du répertoire
  149.     Ceci peut vouloir dire que : - La commande List a échouée lors de son exécution sur le répertoire
  150.                                    en question. Ceci peut être du au fait que certains noms 
  151.                                    de répertoire contiennent des caractères interdits.
  152.                                       Exemple : RAM:|toto
  153.                                            Le caractère "|" ne doit pas être utilisé pour un nom de
  154.                                            répertoire.
  155.                                    Ceci a une conséquence grave : la commande List ayant échouée, le
  156.                                    scan est interrompu, donc votre archive n'a pas été scannée à 100%.
  157.                                    Donc, un virus peut se cacher dans la partie non scannée.
  158.                                  - Au moins un des tiroirs de l'arborescence à lister n'existe pas.
  159.                                  - ...
  160.  
  161. * ERREUR !!! durant la vérification de l'archive
  162.     Ceci peut vouloir dire que : - Vous n'avez pas assez de RAM. En effet, le script est programmé
  163.                                    pour décompresser les exécutables et les données lors du scan.
  164.                                  - ...
  165.  
  166.  
  167. Historique
  168.  
  169. CheckArc 1.0 : Première version distribuée
  170. CheckArc 1.1 : - Reconnait les archives .RAR
  171.                - Gestion plus élégantes des répertoires ne contenant pas d'archives. En effet,
  172.                  dans la version 1.0, si vous donniez un tel tiroir, la commande Sort
  173.                  retournait une erreur code 20. Rien de grave, mais peu esthétique. Maintenant, vous
  174.                  serez informé et le programme quittera proprement.
  175.                - Meilleure reconnaissance entre fichier et tiroir grace à la RexxSupport.library :
  176.                  terminé la magouille avec la commande Dir. Cette astuce retournait une erreur code
  177.                  20 lors d'un CheckArc sur une simple archive. Rien de grave pour la reconnaisance
  178.                  des virus (le script était pleinement fonctionnel) mais c'est pas beau. Na !!
  179.                - Meilleure gestion de la requête ReqTools :
  180.                     * Une première boite pour préciser votre type de sélection (répertoire ou archive)
  181.                       et une seconde pour la sélection.
  182.                     * Ajout du filtre #?.lha|#?.lzh|#?.lzx|#?.run|#?.dms|#?.zip|#?.rar
  183.                     * Maintenant on quitte si on clique le bouton "Annuler" (et oui, un oubli :-(
  184.                - Meilleure gestion des .RUN : en effet, tous les .RUN ne sont pas des archives !!
  185.                  Ceci était une erreur grave qui compromettait l'intégralité du scan virus sur ces
  186.                  archives. C'est maintenant corrigé. Heureusement que de tels fichiers ne courent
  187.                  pas les rues.
  188.  
  189.  
  190. To do
  191.  
  192. - Simplifier la sélection RexxReqTools.library (si possible)
  193. - Faire taire les erreurs code une fois pour toutes !!!!!!!!!!
  194. - An english documentation :-)
  195. - Les différentes idées des utilisateurs (si j'en reçoie :-)
  196. Toutes aides ou suggestions sont les bienvenues (surtout pour les deux premiers).
  197.  
  198.  
  199. Les remerciements
  200.  
  201. * Georg Hörmann pour son excellent VirusZ.
  202. * Nico François et Magnus Holmgren pour la génialissime RexxReqTools.library.
  203. * Lionel qui par ses idées avisées, clairvoyantes, limpides, pleines de bon sens,...
  204.   (ça ira comme ça ou un peu plus :-) m'a permis d'améliorer le script.
  205. * Ma copine qui a été privée de ses jeux favoris et de sa télé.
  206. * André, Marc, Nelson, ... pour leur tests plus ou moins sérieux :-)...
  207. * Jérôme pour ses conseils et son écoute de dernière minute (hello RAM :-)
  208. * et ceux que j'ai oublié de citer...
  209.  
  210.  
  211. L'auteur
  212.  
  213. Jean-Philippe MISTROT
  214. j_p_m@hotmail.com
  215. Si vous pensez avoir trouvé des optimisations pour que le script fonctionne mieux ou que vous
  216. souhaitez que j'y apporte d'autres fonctions n'hésitez pas à me contacter.
  217. J'attire votre attention sur le fait que je suis totalement débutant en AREXX, donc n'en veuillez
  218. pas trop à mes éventuelles maladresses...
  219.